﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////


#pragma once

#include "GcmpDwgDxfInterface.h"
#include "Vector3d.h"


namespace gcmp
{
    class IModelView;
    class IDrawingLayout;

    /// \brief 每个视口需要导出的参数设置。
    struct GCMP_DWG_DXF_INTERFACE_EXPORT ViewportExportSettings
    {
        /// \brief ViewportExportSettings构造函数。
        ViewportExportSettings();
        const IModelView* ModelView;   ///<  视口对应的ModelView。缺省为空指针。
        bool ShouldExportTitle;        ///<  是否需要导出视口的标题。true表示需要导出视口的标题；false表示不需要导出视口的标题。缺省为true。
        gcmp::Vector3d InsertPosition; ///<  视口的基准点。缺省值（0,0,0），则由平台内部分配基准点。目前用户设置该基准点无效，由平台内部分配基准点。
        gcmp::Vector3d TitlePosition;  ///<  视口的标题的基准点。缺省值（0,0,0），则由平台内部分配基准点。目前用户设置该基准点无效，由平台内部分配基准点。
        bool ShouldExportHideEdges;    ///<  是否导出隐藏线。true表示该视口整体上需要导出隐藏线；false表示该视口整体不需要导出隐藏线。缺省为false，整体不导出隐藏线。
        bool KeepHighHiddenEdges;      ///<  导出隐藏线过程，如果隐藏线在视线方向存在遮挡，true表示保留高程较高的隐藏线，false表示保留高程较低的隐藏线。KeepHighHiddenEdges有效的前提是ShouldExportHideEdges为true。
    };

}
